package com.atguigu.yygh.user.service;

import com.atguigu.yygh.model.user.UserInfo;
import com.atguigu.yygh.vo.user.LoginVo;
import com.atguigu.yygh.vo.user.UserAuthVo;
import com.atguigu.yygh.vo.user.UserInfoQueryVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

public interface UserInfoService extends IService<UserInfo> {
    //会员登录
    Map<String, Object> login(LoginVo loginVo);

    //微信开发扫描 - 判断数据库是否存在微信的扫描人信息（根据openid判断）
    UserInfo selectWxInfoOpenId(String openid);

    //更新用户认证数据
    void userAuth(Long userId, UserAuthVo userAuthVo);

    //跟据用户id获取认证信息
    UserInfo getUserInfo(Long userId);

    //带条件带分页用户列表查询
    IPage<UserInfo> selectPage(Page<UserInfo> pageParam, UserInfoQueryVo userInfoQueryVo);

    /**
     * 用户锁定and解锁
     * @param userId
     * @param status 0：锁定 1：正常
     */
    void lock(Long userId, Integer status);

    /**
     * 查询用户详情相关信息
     * @param userId 用户id
     * @return 用户信息＋就诊人信息
     */
    Map<String, Object> show(Long userId);

    /**
     * 用户认证审批功能
     * @param userId 用户id
     * @param authStatus 身份验证状态
     * @return 认证状态
     */
    void approval(Long userId, Integer authStatus);
}